The Internet comprises a vast number of computers and computer networks that are interconnected through communication links. The interconnected computers exchange information using various services. In particular, a server computer system, referred to herein as a web server, may connect through the Internet to a remote client computer system, referred to herein as a requesting device. The requesting device may request and receive, from the web server, websites containing one or more graphical and textual web pages of information. A request is made by visiting the website's address, known as a Uniform Resource Locator (“URL”). Upon receipt, the requesting device can display the web pages. The request and display of the websites are typically conducted using a browser. A browser is a special-purpose application program that effects the requesting of web pages and the displaying of web pages.
The information on web pages is in the form of programmed source code that the browser interprets to determine what to display on the requesting device. The source code may include document formats, objects, parameters, positioning instructions, and other code that is defined in one or more web programming or markup languages. One web programming language is HyperText Markup Language (“HTML”), and all web pages use it to some extent. HTML uses text indicators called tags to provide interpretation instructions to the browser. The tags specify the composition of design elements such as text, images, shapes, hyperlinks to other web pages, programming objects such as JAVA applets, form fields, tables, and other elements. By default, the browser processes HTML instructions in the order they are listed, so that elements appear on the web page according to the HTML processing flow. HTML can be used to establish design element positioning in combination with Cascading Style Sheets (“CSS”) or a number of other technologies to ascribe either a relative or an absolute position of the element on the web page, as depicted on the requesting device. Relative positioning of an element retains the element within the HTML processing flow, simply moving the element a proscribed number of pixels horizontally or vertically away from the place the element otherwise would have appeared. In contrast, absolute positioning places the element a proscribed number of pixels from the top-left (or top-right in countries with right-to-left reading direction) corner of the web page. The element is removed from the HTML processing flow of the web page. The location of such an absolutely positioned element does not vary with page width and does not affect the positioning of elements around the element.
The display parameters of requesting devices may vary widely due to differences in screen size, resolution, processing power, and maximum download speeds. Formatting the web page to be properly displayed across a large number of requesting devices with different display parameters and bandwidth is a primary concern for web page designers. Historically, the most effective way to address this concern has been for the web page designer to manually create different formatting and style layouts for each expected set of requesting device parameters. For example, a designer would create a first web page to be displayed within a browser window on a standard computer monitor set at 1600×1200 resolution and using mouse and keyboard input for navigation. The designer would then create a second web page having the same or similar content as the first web page, but being formatted for display on a mobile device, such as a smart phone or tablet, which has a relatively constrained screen size and touch-screen navigation. This manual approach excessively duplicates design work and, due to the hard-coded formatting of each page, is susceptible to changes in requesting device display parameters. An automated web page conversion process that accommodates any requesting device would be advantageous.
One known programming approach, referred to as responsive web design (“RWD”), addresses this concern in some computing environments. RWD uses a particular set of programming language function calls to adapt the web page to the width and resolution of the requesting device's display. Such adaptation may include repositioning, resizing, and even completely eliminating design elements in order to fit the content into a new layout that accommodates the display. Unless adaptive layout decisions are made in advance by the web designer, thus obviating some automation of the processing, RWD may compromise the functional and informational goals of the web page as well as its aesthetic goals. Furthermore, RWD reformatting is particularly ill-suited for adapting web pages employing absolute positioning of elements because the reformatting is primarily determined by the width of the browser window, which does not affect absolutely-positioned elements.